$(document).ready(function() {
	var pageId = parent.pageId;
	var oTable;

	function selRowStyle(){
		var $_tbodyTr = $("#example tbody tr");
		
		$_tbodyTr.unbind('click');
		$_tbodyTr.click( function( e ) {
			oTable.$('tr.row_selected').removeClass('row_selected');
			$(this).addClass('row_selected');
		});
	}
	selRowStyle();
	
	// 点击列表行时，获得此行的数据
	function tdClick(){
		var $_tbodyTd = $('#example tbody td');
		$_tbodyTd.unbind('click');
		$_tbodyTd.click(function(){

			var aPos = oTable.fnGetPosition(this);
			var rowIndex = aPos[0];
			var aData = oTable.fnGetData(rowIndex);
			// 过滤数组，去除不要的数据
			aData = $.grep(aData,function(n,i){
				if(i!=3){
					return true;
				}
			},false);
			aData = $.merge([rowIndex],aData);
			parent.fnCkDataSourceFill(aData);
		});
	}
	tdClick();

	
	// allIds 存放调用UI时，页面中所有的 dsid
	window.delSelRow = function(allDSIds){
		var anSelected = fnGetSelected( oTable );
		var delRowId = '';
		if ( anSelected.length !== 0 ) {// 表示选中某行
			var delRow = oTable.fnDeleteRow( anSelected[0] );
			delRowId = delRow[0]._aData[0];

			var isDelServer = true;// 表示是否需要删除服务器端的
			
			var num = $.grep(allDSIds,function(n,i){
				return delRowId == n;
			},false).length;

			if(num > 1){ // 如果出现多次，则不删除DB数据
				isDelServer = false;
			}

			// 如果delRowId存在值，表示也需要删除数据库中的数据
			if(delRowId && isDelServer){
				$.ajax({
					url : 'dataSourceList/delDataSource',
					data : {dsId : delRowId},
					type : 'Post',
					success : function(state){
						// alert(state=='success'?'成功':'失败');
					}
				})
			}
			parent.clearDataSource();
		}else{
			alert('请选择要删除的数据');
			return -1;
		}
		return delRowId;
		
	}
	
	// 保存数据
	// window.saveDataTable = function(){
	// 	var dataArr = oTable.fnGetData();

	// 	var dataObj = [];
	// 	$.each(dataArr,function(){
	// 		var rows = this;
			
	// 		if(rows[0] == ''){ // 添加
	// 			dataObj.push({
	// 				pageId : pageId,
	// 				dsName : rows[1],
	// 				bankType : rows[2],
	// 				execCode : rows[4]
	// 			});
	// 		}else if(rows[0] != ''){ // 修改
	// 			dataObj.push({
	// 				id : rows[0],
	// 				pageId : pageId,
	// 				dsName : rows[1],
	// 				bankType : rows[2],
	// 				execCode : rows[4]
	// 			});
	// 		}
	// 	})

	// 	var ids = '';
	// 	$.ajax({
	// 		url : 'dataSourceList/saveDataSource',
	// 		data : {data : JSON.stringify(dataObj)},
	// 		type : 'post',
	// 		success : function(state){
	// 			alert(state.result=='success'?'成功':'失败');
	// 			ids = state.ids;
	// 		},
	// 		async : false
	// 	});
	// 	return ids;
	// }

	window.checkSpaceNameRepeat = function(rows,oper,updateIndex){
		// 获得表格每行 node
		var nNodes = oTable.fnGetNodes();
		// 记录是否有数据源名重复
		var isExist = false;
		// 新增的数据源名
		var dsName = rows[1];
		
		var updateRow;
		$.each(nNodes,function(i,n){
			$_this = $(n);
			var firstTdVal = $_this.find('td:first').text();
			//alert(firstTdVal);
			if(oper == 'add'){
				if(firstTdVal == dsName)
					isExist = true;
			}else if (oper == 'update' || oper == 'removeSave'){				 
				if(updateIndex != i && firstTdVal == dsName)
					isExist = true;
			}
		});
		
		return isExist;
	}

	window.addDataRow = function(rows,oper,updateIndex){
		if(oper != 'add'){
			if(checkSpaceNameRepeat(rows,oper,updateIndex)){
				alert(ck.constant.checkNameIsRepeatMsg);
				return;
			}
		}


		// 获得表格每行 node
		var nNodes = oTable.fnGetNodes();
		// 新增的数据源名
		var dsName = rows[1];
		
		var updateRow;
		$.each(nNodes,function(i,n){
			if (oper == 'update' || oper == 'removeSave'){
				if(i == updateIndex){
					updateRow = n;
				}
			}
		});


		var dataObj;
		if(oper == 'add' || oper == 'removeSave'){ // 添加，通过判断id是否为空判断
			dataObj = {
				pageId : pageId,
				dsName : rows[1],
				bankType : rows[2],
				execCode : rows[4],
				scope : rows[5]
			};
		}else if(oper == 'update'){ // 修改
			dataObj = {
				id : rows[0],
				pageId : pageId,
				dsName : rows[1],
				bankType : rows[2],
				execCode : rows[4],
				scope : rows[5]
			};
		}

		var id = '';
		$.ajax({
			url : 'dataSourceList/saveDataSource',
			data : {data : JSON.stringify(dataObj)},
			type : 'post',
			success : function(state){
				// alert(state.result=='success'?'成功':'失败');
				id = state.ids;
			},
			async : false
		});

		rows[0] = id;

		if(oper == 'add'){
			// 新增行
			oTable.fnAddData(rows);
		}else if(oper == 'update' || oper == 'removeSave'){
			oTable.fnUpdate(rows,updateRow);
		}

		// 更新事件
		selRowStyle();
		tdClick();
		
		parent.clearDataSource();
		// 清除表格中的选中样式
		oTable.$('tr.row_selected').removeClass('row_selected');
		return id;
	}

	oTable = $('#example').dataTable( {
		// 隐藏某列
		"aoColumnDefs": [
			{ "bVisible": false, "aTargets": [0] },
			{ "bVisible": false, "aTargets": [4] },
			{ "bVisible": false, "aTargets": [5] },
		],
		"bDeferRender": false,
		"bPaginate": false,
		'bFilter' : false,
		'bSort' : false,
		'bInfo': false,
		'bLengthChange' : false,
		"bJQueryUI": true,
		"sPaginationType": "full_numbers",
		'oLanguage': {
					'sLengthMenu': '每页显示 _MENU_ 条记录',
					'sZeroRecords': '没有找到 - 对比起',
					'sInfo': '共 _TOTAL_ 条记录',
					'sInfoEmpty': '没有数据',
					'sInfoFiltered': '(从_MAX_条记录中检索)',
					'sSearch': '搜索：',
					'sEmptyTable': '没有数据',
					'oPaginate': {
						'sFirst': '第一页',
						'sPrevious': '上一页',
						'sNext': '下一页',
						'sLast': '最后一页'
					}
				}
			} );

	function fnGetSelected(oTableLocal){
		return oTableLocal.$('tr.row_selected');
	}
} );